package com.infra.micro.id.domain.core;


import java.util.Set;

/**
 * @author TongWei.Chen 2022/3/4 13:39
 * <p>
 * IdGenerator
 **/
public interface IdGenerator {

    /**
     * 组件名
     *
     * @return 组件名
     */
    String name();

    /**
     * 当前appId下生成一个ID
     *
     * @param appId 应用ID
     * @return
     */
    Long getId(Integer appId);

    /**
     * 当前appId下生成一批ID
     *
     * @param appId 应用ID
     * @param step  步长
     * @return
     */
    Set<Long> getIds(Integer appId, int step);
}
